package com.dbingtech.iot.eventbus;

import com.google.common.eventbus.EventBus;

import java.util.concurrent.TimeUnit;

/**
 * 进程内事件总线，还不错，挺小巧的一个进程内消息机制，发送方压根不需要知道任何接受方的存在！
 */
public class TestBus {

    public static void main(String[] args) {
        EventBus bus = new EventBus();
        bus.register(new C2());//所有的消息消费者都必须有一个公开的方法，并被标注为@Subscribe
        bus.register(new StringConsumer());

        //发送事件
        bus.post(new SensorUpEvent(1));
        bus.post(new String("abcdefg"));    //这条消息不会被C2接受，因为它只接受SensorEvent的子类，这条消息会被发给StringConsumer
        bus.post(new SensorUpEvent(2));

        try {
            TimeUnit.SECONDS.sleep(5);
        } catch (InterruptedException e) {
        }

    }
}
